今天的重點是把鼓勵語句生成功能接上 GLM-4.6(Hugging Face Inference,Novita provider),整個流程都放在後端處理,避免金鑰外洩。產出必須短、溫暖、可行,前端畫面只留下繁體中文。
改成用 @huggingface/inference
的 InferenceClient
做 chat completion,系統提示詞固定成「教練風格、1–2 句、別提問、別用 emoji」。
環境變數控制:HUGGINGFACE_API_KEY
、HF_TEXT_MODEL_ID
(預設 zai-org/GLM-4.6)、HF_TEXT_PROVIDER
(預設 novita)、HF_TEXT_SYSTEM_PROMPT
。
Client 做了快取,不會每次都重新建連線。完整流程:接到 prompt → 英文短句 → 翻譯中文 → 轉繁體 → 回傳。
翻譯依然走 Hugging Face 模型,最後再用 chinese-conv
做簡→繁。遇到 vercel dev 不吃第三方 .ts 輸出,就從 chinese-conv/dist
匯入,順便補了型別宣告。
/api/encouragement
:文字生成功能(英文→翻譯→繁體化),有錯誤處理、逾時、token 檢查。/api/encouragement-image
:維持原本影像生成功能,另外擴充 VercelRequest
支援 rawBody
。以/api/encouragement 為範例;點選生成鼓勵語句後
以下以是API回傳的內容(Response懶的擷@@)
@vercel/node
解決型別來源問題。TEXT_PROVIDER
明確標註成 InferenceProviderOrPolicy
。VercelRequest
擴充型別支援 rawBody
。串流回應(逐字顯示)、速率限制,還有前端UX優化